package com.wy.inter2;

import java.io.File;

public class FileConverter {
    public static void main(String[] args) {


        File inputFile = new File("input.txt");
        File outputFile = new File("output.docx");

        FileType inputType = getFileType(inputFile);
        FileType outputType = getFileType(outputFile);

        Converter converter = getConverter(inputType, outputType);
//        得到这个转换器之后,   再对这个转换器进行具体的擦做  到具体的转换类。
        if (converter != null) {
            converter.convert(inputFile, outputFile);
        } else {
            System.out.println("无法转换文件");
        }
    }

    private static FileType getFileType(File file) {
        String fileName = file.getName().toLowerCase();
        if (fileName.endsWith(".txt")) {
            return FileType.DOCUMENT;
        } else if (fileName.endsWith(".jpg") || fileName.endsWith(".png")) {
            return FileType.IMAGE;
        } else if (fileName.endsWith(".mp3") || fileName.endsWith(".mp4")) {
            return FileType.AUDIO;
        } else if (fileName.endsWith(".docx") || fileName.endsWith(".pdf")) {
            return FileType.VIDEO;
        } else {
            throw new IllegalArgumentException("无法识别的文件类型");
        }
    }

    private static Converter getConverter(FileType inputType, FileType outputType) {
        switch (inputType) {
            case DOCUMENT:
                switch (outputType) {
                    case DOCUMENT:
                        return new TextConverter();
                    case IMAGE:
                        // 实现文本转图片的转换器
                        break;
                    case AUDIO:
                        // 实现文本转音频的转换器
                        break;
                    case VIDEO:
                        // 实现文本转视频的转换器
                        break;
                }
                break;
            case IMAGE:
                switch (outputType) {
                    case DOCUMENT:
                        // 实现图片转文本的转换器
                        break;
                    case IMAGE:
                        return new ImageConverter();
                    case AUDIO:
                        // 实现图片转音频的转换器
                        break;
                    case VIDEO:
                        // 实现图片转视频的转换器
                        break;
                }
                break;
            case AUDIO:
                switch (outputType) {
                    case DOCUMENT:
                        // 实现音频转文本的转换器
                        break;
                    case IMAGE:
                        // 实现音频转图片的转换器
                        break;
                    case AUDIO:
                        return new AudioConverter();
                    case VIDEO:
                        // 实现音频转视频的转换
                        break;
                }
                break;
            case VIDEO:
                switch (outputType) {
                    case DOCUMENT:
                        // 实现音频转文本的转换器
                        break;
                    case IMAGE:
                        // 实现音频转图片的转换器
                        break;
                    case AUDIO:
                        return new AudioConverter();
                    case VIDEO:
                        // 实现音频转视频的转换
                        break;
                }
        }
        return null;
    }
}
